/**
 * 文件名：@VoidReturnValueHandler.java <br/>
 * 包名：cn.efunbox.afw.web.mvc.springmvc <br/>
 * 项目名：afw-mvc-web <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.web.mvc.springmvc;

import org.springframework.core.MethodParameter;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.method.support.ModelAndViewContainer;

/**
 * 类名：VoidReturnValueHandler  <br />
 *
 * 功能：void类型的返回值处理器
 *
 * @author xtwin <br />
 * 创建时间：2015年12月3日 上午10:32:38  <br />
 * @version 2015年12月3日
 */
public class VoidReturnValueHandler implements HandlerMethodReturnValueHandler {
	
	// 日志记录器
	//private static final Log logger = LogFactory.getLog(VoidReturnValueHandler.class);

	/**
	 * 功能: <br/>
	 * 
	 * 重写：xtwin <br/>
	 * 
	 * @version ：2015年12月3日 上午10:33:01<br/>
	 * 
	 * @param returnType
	 * @return <br/>
	 * @see org.springframework.web.method.support.HandlerMethodReturnValueHandler#supportsReturnType(org.springframework.core.MethodParameter)
	 */
	@Override
	public boolean supportsReturnType(MethodParameter returnType) {
		return void.class.equals(returnType.getParameterType());
	}

	/**
	 * 功能: <br/>
	 * 
	 * 重写：xtwin <br/>
	 * 
	 * @version ：2015年12月3日 上午10:33:01<br/>
	 * 
	 * @param returnValue
	 * @param returnType
	 * @param mavContainer
	 * @param webRequest
	 * @throws Exception <br/>
	 * @see org.springframework.web.method.support.HandlerMethodReturnValueHandler#handleReturnValue(java.lang.Object, org.springframework.core.MethodParameter, org.springframework.web.method.support.ModelAndViewContainer, org.springframework.web.context.request.NativeWebRequest)
	 */
	@Override
	public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {
		
		// 这里先使用空串占位，防止spring填充默认视图
		mavContainer.setViewName("");
		
		// 复制参数
		//mavContainer.addAllAttributes(AfwContext.getContext().getValue());
	}
}